#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>


int main()
{
    int fd = open("log.txt", O_RDONLY);
    dup2(fd, 0);// 输入重定向

    char buffer[2048];
    size_t s = read(0, buffer, sizeof(buffer));
    if(s > 0)
    {
        buffer[s] = 0;
        printf("stdin redir: \n%s\n", buffer);
    }

    return 0;
}


//int main()
//{
//    int fd = open("log.txt", O_CREAT | O_WRONLY | O_APPEND, 0666);
//    
//    dup2(fd, 1);
//    
//    write(1, "hello 1\n", 8);    
//
//    printf("hello fd: %d\n", fd);
//    fprintf(stdout, "hello fd: %d\n", fd);
//    fputs("hello world\n", stdout);
//
//    const char *message = "hello fwrite\n";
//    fwrite(message, 1, strlen(message), stdout);
//    return 0;
//}



//int main()
//{
//    close(1);
//
//    int fd1 = open("log1.txt", O_WRONLY | O_CREAT | O_APPEND, 0666);    
//    int fd2 = open("log2.txt", O_WRONLY | O_CREAT | O_APPEND, 0666);    
//    int fd3 = open("log3.txt", O_WRONLY | O_CREAT | O_APPEND, 0666);    
//    int fd4 = open("log4.txt", O_WRONLY | O_CREAT | O_APPEND, 0666);   
//
//    printf("fd1: %d\n", fd1);
//    printf("fd2: %d\n", fd2);
//    printf("fd3: %d\n", fd3);
//    printf("fd4: %d\n", fd4);
//
//    fflush(stdout); 
//    
//    close(fd1);
//    close(fd2);
//    close(fd3);
//    close(fd4);
//
//    return 0;
//}

